/*向百度AI的服务器请求获取访问令牌 */
//模块引入，简化异步请求流程
const rq = require('request-promise')

exports.main = async(event, context) => {
   // 变量声明部分
  let clientId = '',
  grantType = 'client_credentials',
  clientSecret = '',
  url = `https://aip.baidubce.com/oauth/2.0/token`

  return new Promise(async(resolve, reject) => {
    try {
      // 发起 HTTP POST 请求部分
      let data = await rq({
        method: 'POST',
        url,
        form: {
          "grant_type": grantType,
          "client_secret": clientSecret,
          "client_id": clientId
        },
        json: true
      })
      // 请求成功时的处理，返回包含状态码、数据和提示信息的对象
      resolve({
        code: 0,
        data,
        info: '操作成功！'
      })
    } catch (error) {
      console.log(error)
      /* 如果错误对象没有 code 属性则拒绝 Promise，否则将错误对象直接 resolve*/
      if (!error.code) reject(error)
      resolve(error)
    }
  })
}